﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAL;
using BL;

namespace QuanLyCHTrangSuc
{
    public partial class QuanLyChiTietTKBC : Form
    {
        List<ThongKeDAL> CTthongke = new List<ThongKeDAL>();
        List<ThongKeDAL> thongke = new List<ThongKeDAL>();
        List<ThongKeDAL> tim = new List<ThongKeDAL>();
        ThongKeDAL ctTK = new ThongKeDAL();
        DonDatHangBL donhang = new DonDatHangBL();
        public QuanLyChiTietTKBC()
        {
            InitializeComponent();
        }

        private void LoadComBoMaTK()
        {
            thongke = ThongKeBL.LayDsThongKe();
            cbMaTK.DataSource = thongke;
            cbMaTK.DisplayMember = "MaThongKe";
        }

        private void LoadComBoMaDonHang()
        {
            cbMaDonHang.DataSource = donhang.LayDSDonHang();
            cbMaDonHang.DisplayMember = "MaDonDatHang";
        }

        private void LayDsChitietThongKe()
        {
            CTthongke = ThongKeBL.LayDsChitietThongKe();
            if (CTthongke.Count == 0)
            {
                MessageBox.Show(" Không Tìm Thấy!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            for (int i = 0; i < CTthongke.Count; ++i)
            {

                ListViewItem lvi = new ListViewItem();
                lvi.Text = CTthongke[i].MaThongKe;
                lvi.SubItems.Add(CTthongke[i].MaDonDatHang.ToString());
                lvi.SubItems.Add(CTthongke[i].TongThu.ToString());
                lvi.SubItems.Add(CTthongke[i].TongChi.ToString());
                lvi.SubItems.Add(CTthongke[i].LoiNhuan.ToString());
                lvi.SubItems.Add(CTthongke[i].NgayThongKe.ToString());
                lvi.Tag = (object)CTthongke[i].MaThongKe;
                lvDSchitietTK.Items.Add(lvi);
            }

        }

        private void QuanLyChiTietTKBC_Load(object sender, EventArgs e)
        {
            LoadComBoMaTK();
            LoadComBoMaDonHang();
            LayDsChitietThongKe();
        }
        private void txtTongThu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void txtTongChi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void lvDSchitietTK_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.lvDSchitietTK.SelectedItems.Count > 0)
            {
                ListViewItem lvi = this.lvDSchitietTK.SelectedItems[0];

                // gan' thuoc tinh tu lvi qua ctTK               
                ctTK.MaThongKe = lvi.SubItems[0].Text;
                ctTK.MaDonDatHang = Convert.ToInt32(lvi.SubItems[1].Text);
                ctTK.TongThu = float.Parse(lvi.SubItems[2].Text);
                ctTK.TongChi = float.Parse(lvi.SubItems[3].Text); 
                ctTK.LoiNhuan = float.Parse(lvi.SubItems[4].Text);

                //gán thuộc tính từ lvi qua textbox
                cbMaTK.Text = lvi.SubItems[0].Text;
                cbMaDonHang.Text = lvi.SubItems[1].Text;
                txtTongThu.Text = lvi.SubItems[2].Text;
                txtTongChi.Text = lvi.SubItems[3].Text;
                txtLoiNhuan.Text = lvi.SubItems[4].Text;
            }
        }

        private void btThem_Click(object sender, EventArgs e)
        {
            if (txtTongThu.Text == "" || txtTongChi.Text == "")
            {
                MessageBox.Show("Không được để trống mục nào!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            float tongthu = float.Parse(txtTongThu.Text);
            float tongchi = float.Parse(txtTongChi.Text);
            float loinhuan = tongthu - tongchi;
            QuanLyChiTietTKBL.Them(cbMaTK.Text, cbMaDonHang.Text, tongthu, tongchi, loinhuan);
            lvDSchitietTK.Items.Clear();
            LayDsChitietThongKe();
        }

        private void Clear()
        {
            LoadComBoMaTK();
            LoadComBoMaDonHang();

            txtTongThu.Text = "";
            txtTongChi.Text = "";
            txtLoiNhuan.Text = "";
        }

        private void Xóa_Click(object sender, EventArgs e)
        {
            CTthongke = ThongKeBL.LayDsChitietThongKe();
            if (CTthongke.Count == 0)
            {
                MessageBox.Show(" Dữ liệu không tồn tại để thực hiện chức năng xóa này!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                DialogResult XOA = MessageBox.Show(" Bạn thực sự muốn xóa chi tiết thống kê có mã thống kê là  " + ctTK.MaThongKe + " và mã đơn đặt hàng là "+ ctTK.MaDonDatHang +"?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (XOA == DialogResult.Yes)
                {
                    QuanLyChiTietTKBL.Xoa(ctTK.MaThongKe, ctTK.MaDonDatHang.ToString());
                    lvDSchitietTK.Items.Remove(this.lvDSchitietTK.SelectedItems[0]);
                    Clear();
                }
                else
                {
                    MessageBox.Show(" Bạn đã không xóa!", " Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void Sửa_Click(object sender, EventArgs e)
        {
            if (txtTongThu.Text == "" || txtTongChi.Text == "")
            {
                MessageBox.Show("Không được để trống mục nào!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            try
            {
                float tongthu = float.Parse(txtTongThu.Text);
                float tongchi = float.Parse(txtTongChi.Text);
                float loinhuan = tongthu - tongchi;
                QuanLyChiTietTKBL.Sua(cbMaTK.Text, cbMaDonHang.Text, tongthu, tongchi, loinhuan);
            }
            catch (Exception)
            {
                MessageBox.Show("Sửa Thất Bại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            lvDSchitietTK.Items.Clear();
            LayDsChitietThongKe();
        }

        private void btLamMoi_Click(object sender, EventArgs e)
        {
            Clear();
        }

        private void btTim_Click(object sender, EventArgs e)
        {
            lvDSchitietTK.Items.Clear();
            tim = QuanLyChiTietTKQuery.Tim(cbMaTK.Text, cbMaDonHang.Text);
            if (tim.Count == 0)
            {
                MessageBox.Show(" Không Tìm Thấy!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            for (int i = 0; i < tim.Count; ++i)
            {

                ListViewItem lvi = new ListViewItem();
                lvi.Text = tim[i].MaThongKe;
                lvi.SubItems.Add(tim[i].MaDonDatHang.ToString());
                lvi.SubItems.Add(tim[i].TongThu.ToString());
                lvi.SubItems.Add(tim[i].TongChi.ToString());
                lvi.SubItems.Add(tim[i].LoiNhuan.ToString());
                lvi.SubItems.Add(tim[i].NgayThongKe.ToString());
                lvi.Tag = (object)tim[i].MaThongKe;
                lvDSchitietTK.Items.Add(lvi);
            }
        }

        private void btXemChitiet_Click(object sender, EventArgs e)
        {
            lvDSchitietTK.Items.Clear();
            LayDsChitietThongKe();
        }
    }
}
